//  ‌qs‌ 库，一个处理 URL 查询字符串的实用工具库

// 引入qs库
const qs = require('qs');

// 示例1：将对象序列化为查询字符串
const params = {
  name: '张三',
  age: 25,
  hobbies: ['阅读', '编程'],
  filters: {
    category: '技术',
    level: '高级'
  }
};

const queryString = qs.stringify(params);
console.log('序列化结果:', queryString);
// 输出: name=张三&age=25&hobbies[0]=阅读&hobbies[1]=编程&filters[category]=技术&filters[level]=高级

// stringify:使成字符串，把对象，数组switch字符串
// parse:分析，解析，把文本，字符串switch程序看得懂的数据结构
// json.stringify:switch成json格式的字符串
// 示例2：将查询字符串解析为对象
const urlParams = 'name=李四&score=90&tags[0]=前端&tags[1]=JavaScript'

const parsedObj = qs.parse(urlParams);
console.log('解析结果:', JSON.stringify(parsedObj, null, 2));
// 输出: {
//   'name': '李四',
//   'score': '90',
//  'tags': ['前端', 'JavaScript']
// }

// 示例3：处理嵌套数组
const arrayData = { ids: [1, 2, 3] };
const arrayQuery = qs.stringify(arrayData);
console.log('数组序列化:', arrayQuery);
// 输出: ids[0]=1&ids[1]=2&ids[2]=3

// 示例4：带配置选项
const config = {
  arrayFormat: 'brackets',
  encode: false
};

const configResult = qs.stringify({ colors: ['红', '绿', '蓝'] }, config);
console.log('配置序列化:', configResult);
// 输出: colors[]=红&colors[]=绿&colors[]=蓝
